import { fileURLToPath, URL } from 'node:url'

import { defineConfig, loadEnv } from 'vite'
import vue from '@vitejs/plugin-vue'
// import vueDevTools from 'vite-plugin-vue-devtools'

// https://vite.dev/config/
export default defineConfig(({ mode }) => {
  const env = loadEnv(mode, process.cwd(), '')
  const proxyTarget = env.VITE_PROXY_TARGET || 'http://api-territory-game.monkeymeerkat.cn'

  return {
    plugins: [
      vue(),
      // vueDevTools(),
    ],
    resolve: {
      alias: {
        '@': fileURLToPath(new URL('./src', import.meta.url))
      },
    },
    server: {
      proxy: env.VITE_USE_PROXY === 'true' ? {
        // 将以 /api 开头的请求代理到后端，避免浏览器 CORS
        '/api': {
          target: proxyTarget,
          changeOrigin: true,
          secure: false,
        },
        // 将以 /hubs 开头的请求代理到后端，用于SignalR连接（保留兼容）
        '/hubs': {
          target: proxyTarget,
          changeOrigin: true,
          secure: false,
          ws: true, // 支持WebSocket
        },
        // 将 SignalR Hub 路径 /gamehub 代理到后端（实际后端映射的是 /gamehub）
        '/gamehub': {
          target: proxyTarget,
          changeOrigin: true,
          secure: false,
          ws: true, // 支持WebSocket与协商请求
        },
      } : undefined
    }
  }
})
